# 不定长位置传参，使用*args,*args表示可以接收所有的位置参数(可以没有参数)，并将其放置在一个元组中
# *args后面的参数只能通过关键字传参才能修改它的值
def fun1(a, b, *args, c):
    print(a, b)
    [print(i, end=" ") for i in args]
    print(c)


fun1(1, 2, 3, 4, 5, c=9)


# 不定长关键字传参,使用*kw*args,**kwargs表示可以接收所有的关键字参数(可以没有参数)，并将其放置在一个字典中
def fun2(**kwargs):
    print(kwargs.items())


fun2(a=1, b=2)


# 不定长位置和不定长关键字传参可以一起使用,但是要注意args必须要放在kwargs前面，因为位置传参必须要在关键字传参之前
def fun3(*args, **kwargs):
    print(args, kwargs)


fun3(1, 2, 3, a=1, b=2)
